A General Framework for Analyzing Shared-Memory Parallel Programs
نویسندگان
چکیده
Explicit parallelism greatly complicates the program semantics, especially if concurrent activities are allowed to interact with each other through shared variables. Existing compiler analysis and optimization techniques for sequential programs must be carefully examined before they can be safely applied to parallel programs. In this paper, we present a general framework for analyzing programs with cobegin parallelism, which is based on state space exploration. Reducing the explosion of state space is necessary to make compile-time analysis feasible. This state space explosion problem is relieved first by eliminating redundant interleaving, through the stubborn set theory. Then, abstract interpretation techniques are employed which provide systematic methods for folding related states for further state space reduction. With this framework, we have developed static analysis for obtaining program properties, such as side effects, data dependences, and object lifetimes. The information obtained facilitates program optimization, restructuring, and memory management.
منابع مشابه
A brief history of shared memory
We present a general framework for defining denotational semantic models of shared memory parallel programs, based on an abstract notion of state. We show how this framework can be used to establish natural relationships between traditional models of concurrency and more recent models based on separation principles. We formulate an intuitively reasonable characterization of when one model of st...
متن کاملUniversity of Delaware Department of Electrical and Computer Engineering Computer Architecture and Parallel Systems Laboratory Concurrency Analysis for Shared Memory Programs with Textually Unaligned Barriers
Concurrency analysis is a static analysis technique that determines whether two statements or operations in a shared memory program may be executed by different threads concurrently. Concurrency relationships can be derived from the partial ordering among statements imposed by synchronization constructs. Thus, analyzing barrier synchronization is at the core of concurrency analyses for many par...
متن کاملAutomatic Parallel Program Generation and Optimization from Data Decompositions
Data decomposition is probably the most successful method for generating parallel programs. In this paper a general framework is described for the automatic generation of parallel programs based on a separately specified decomposition of the data. To this purpose, programs and data decompositions are expressed in a calculus, called Vcal. It is shown that by rewriting calculus expressions, Singl...
متن کاملOn Analyzing the Cost of Communication in Networks
s of Talks Jean-Loup Baer On the Performance of Cluster Architectures Yosi Ben-Asher The Partitioned PRAM Model, Re-Doing Basic PRAM Algorithms with Limited Resources Artur Czumaj Adaptitive Allocation Processes Ralf Diekmann Load Balancing Strategies for Scientific Computing Applications Martin Dietzfelbinger On Analyzing the Cost of Communication in Networks Pierre Fraigniaud A General Theory...
متن کاملConcurrency Analysis for Shared Memory Programs with Textually Unaligned Barriers
Concurrency analysis is a static analysis technique that determines whether two statements or operations in a shared memory program may be executed by different threads concurrently. Concurrency relationships can be derived from the partial ordering among statements imposed by synchronization constructs. Thus, analyzing barrier synchronization is at the core of concurrency analyses for many par...
متن کامل